<?php

class LoginBlockController extends BlockController {
    
    public function onCreatePage() {
        $this->form_manager->addHandler($this);
    }
    public function getHTMLArray(RequestContext $context) {
        $ret = array();

        $user = $this->user;
        if (!$user->isLogged) {
            $loginblock_formbody_html = $this->view->getuser_loginblock();
            $form_params = array(
                'body' => $loginblock_formbody_html,
                'action' => 'login',
                'buttons' => '<input type="submit" value="Вход">'
            );
            $ret['loginblock'] = View::form_ex($form_params);
        }
        else
            $ret['loginblock'] = "";
        return $ret;
    }
    
    public function validate_post_login(&$data, &$scope, &$manager) {
        $user = $this->user;
        if ($user->isLogged) {
            //echo"Уже залогинен!<br/>";
            Event::fireEvent('message', array('message'=>"Вы уже залогинены на сайте."));
            return VALIDATION_FAILED;
        }
        $data['strategy'] = "std";
        //если не указана стратегия логина в аргументе, 404
        if (empty($data['strategy']))
        {
            $user->fireEvent('message', array('message'=>"не указан способ входа в систему!"));
            return VALIDATION_FAILED;
        }
        if ($user->model->hasUserInBaseByEmail($data['email']) === FALSE) {
            Event::fireEvent('message', array('message'=>"Такой пользователь не найден!"));
            return VALIDATION_FAILED;
        }
        return VALIDATION_ACCEPTED;
    }
    public function submit_post_login($data, &$scope, &$manager) {
        $user = $this->user;
        //dump($user);
        if($user->doLogin($data))
        {            
            Event::fireEvent('message', array('message' => "Вы успешно вошли на сайт"));
        }
        else
        {
            Event::fireEvent('message', array('message' => "Ошибка входа"));
        }
    }  
}

?>
